首页 > 代码库 > 一些小细节
一些小细节
1、C中printf计算参数时是从右到左压栈的。
定义一个数组 int arr[ ] = {6 , 7, 8 , 9, 10}
再定义一个指针 sint *prt = arr;
printf("%d\n",*ptr); 此时ptr指向第一个元素6;
*(ptr++)+ = 123展开为*ptr = *ptr + 123; ptr++; 此时ptr指向第二个元素7;
printf(“%d,%d\n”,*ptr,*(++ptr)); 从右到左运算,第一个是(++ptr),也就是ptr++,*ptr = 8,此时ptr指向第三个元素8,所以输出全为8.
2、编程风格
if(‘A‘ = a)
{
a++;
}
if(a == ‘A‘)
{
a++;
}
第一种写法更好一些。如果把“==”误写做“=”,因为编译器不允许对常量赋值,就可以检查到错误
一些小细节
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。