博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c基础回顾
阅读量:5269 次
发布时间:2019-06-14

本文共 1445 字,大约阅读时间需要 4 分钟。

 

发现一个很好的c学习网站 

做了一些练习:

#include 
#include
#define ARRLEN(arr) (sizeof(arr)/sizeof(arr[0]))f(int a) { auto b=0; static c= 1; // 奇怪的static特性 ,绝对是不同于java的 b = b+1; c = c+1; return (a+b+c);}ff(int *a) {// 函数结束后实参不发生变化;形参发生变化,但是形参作用域仅在函数内,在函数结束后立即被回收。 int aa=123; a = &aa;}fff(char *ch) {//同上 char *aa="a123"; ch = aa; printf("bb %s\n", ch);}char *ffff(char *ch) {// 函数结束aa的值返回,但aa返回之后就被回收了,即使这样,返回值还是有效的! 不会被回收的吧! char *aa="a123"; ch = aa; return aa;}fffff(int intarr[]) {//因为形参和实参指向同一块内存,函数中形参修改导致内存变化,虽函数结束形参消失,实参还是发生变化 int arr[] = {1,23,45,81,12}; intarr[2] = arr[3];}ffffff(char *charr[]) {// 同上 char *arr[] = {"aa","bb","cc","dd"}; charr[2] = arr[3];}fffffff(char *charr[]) {// 这种情况有别于上述两个例子,只是形参发生了指向的变化,而实参对应的内存并未变化,故函数结束后实参不变。 char *arr[] = {"aa","bb","cc","dd"}; charr = arr;}charstr() { char *ss = "abcdefghijkl"; // -- 这应该是最奇怪的一种数据类型, 存的是字符的指针(地址),但个数不定,直到'\0' // 为什么可以将字符串赋值给 char * ---- 这是c的特有的一种机制。 char *sss = "qwer"; int i; char ch; sss = ss; //ss = "sssss"; 可以; 但是*ss = "sssss"; 不行 *ss代表的是ss字符串的一个字符,故不能将字符串赋值给字符 ch = *(ss+3); // 可以对字符串中某个字符取值,不能设值? //*ss = 's'; // 不行, *ss已经是常量的原因? 左边不能是常量吧。。! 那怎么才可以获取字符串中字符的引用,而后赋值呢? 无解? for(i=0; i

  

c字符数组、c字符串的区别

1.字符数组可能没有尾0,不能直接当字符串用; 2.尾0要占用数组的一个单元,所以,数组必须有多余的单元; 3.如果没有多余的单元,就要重新产生一个较大一点的数组; 4.在字符数组有效字符后,加一个尾0 即  '\0\,就成了字符串;
posted on
2014-03-24 00:39 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/FlyAway2013/p/3620027.html

你可能感兴趣的文章
2019年春季学期第四周作业
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>
rotate the clock
查看>>
bugku 变量
查看>>
Python 环境傻瓜式搭建 :Anaconda概述
查看>>
数据库01 /Mysql初识以及基本命令操作
查看>>
数据库02 /MySQL基础数据类型以及多表之间建立联系
查看>>
Python并发编程04/多线程
查看>>
CF461B Appleman and Tree
查看>>
CF219D Choosing Capital for Treeland
查看>>
杂七杂八的小笔记本
查看>>
51Nod1353 树
查看>>
CF1215E Marbles
查看>>
BZOJ2339 HNOI2011卡农(动态规划+组合数学)
查看>>
octave基本操作
查看>>
axure学习点
查看>>
WPF文本框只允许输入数字[转]
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>
使用XML传递数据
查看>>