本学渣在一个人学习的途中遇到过许多问题 如果没有老师的帮助可能很长时间都走不出来 所以我也希望我的错误能帮助到你
9月13日
题一
未赋值的局部指针是野指针(C)
题二
PS:对于指针来说,传递的是指针值的副本,point 函数内部对 p 的任何修改都不会影响到调用者(即 main 函数)中的原始指针 p。
将代码改成这样就可以了
题三
- %2d和%-2d(左对齐 右对齐)
- 12 4 12 回车也算在里面了
题四
C语言的标识符可分为 关键字 用户标识符 预定义标识符
题五
声明"char s1[20]="张三56";"后,使字符串s1为"张三"的赋值表达式为 ++++s1[4]=++++ ++++'++++ ++++\0++++ ++++'++++ ++++;++++ 。
中文字符占两个字节
9月14日
题一
s并非指向这个二维数组 *s=(char*)a 改变了步长 将(char *[3])强转成char类型
所以*++s其实结果是d char类型的d-2=b
题二
数组名是常量!! 不可以进行赋值操作
9月17日
题一
若变量已正确定义并赋值,表达式 -k++ 等价于______。
A.-(k++) B.(-k)++ C.-(k+1) D.-(++k)
答案:A,-(负号而不是减号)与++优先级相同,结合性从右至左。
题二
下列程序段的输出结果是 。
int m = 1, n = 2, *ptr1 = &m, *ptr2 = &n;
printf("%d %d %d %d", *ptr1, *ptr2, *ptr1= *ptr1 + *ptr2,*ptr1 =*ptr1 + *ptr2) ;
A. 1 2 1 1 B. 1 2 3 3 C.5 2 5 3 D. 1 2 3 5
答案:C。注意这里并不是逗号表达式,而是printf函数特有的性质,即从后向前计算。