尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

C语言随堂笔记-8

C语言随堂笔记-8
📅 发布时间:2026/6/20 4:01:44

%2d右对齐  %-2d左对齐

image

 逗号表达式的值从左向右依次计算,整体表达式的值为 最后一个数。

e.g. return a=3, 4; 那么返回的就是4啦

 

 

image

在有些编译器下数组中可以用变量来定义规模。 

整型数组不完全初始化,剩下的元素自动被初始化为0

image

 

上面一种我放进去了3个,剩下的自动补齐。下面一种我放进去了4个,剩下的自动补齐。

image

 

这样的话就会产生问题,因为ch3放进去了三个,没有终止符。而ch4放进去了4个,有终止符。

image打印ch3的时候就会出现这样的错误。

 

image

逻辑为:自动分组,前四个一组,中四个一组,后四个一组,不够的补0.

如果要编译器自动补全,那么必须要给出列数。

image

二维数组的地址也是连续的 差4是因为int占4个Bytes

int arr[3][4] 和 int arr[12] 在内存中的实现是一致的。

image

 1 #include <stdio.h>
 2 int a = 1;
 3 int alpha(int *p) {
 4     printf("%zd\n", sizeof(p));
 5     //将arr当作实参传入函数后,接受的指针变量弱化了,sizeof(p)的时候获得的仅仅是这个指针变量的大小(视平台而定)
 6 }
 7 int main() {
 8     int a[10] = { 0 };
 9     printf("%p\n", &a);
10     printf("%p\n", &a+1);
11 
12     printf("%p\n", a);
13     printf("%p\n", a+1);
14 
15     printf("%p\n", &a[0]);
16     printf("%p\n", &a[0]+1);
17 
18 /*    
19     000000DEB17CFA68 //整个数组的地址
20     000000DEB17CFA90 //跳过整个数组后的下一个地址
21     0x90-0x68=0x28 ---> 十进制下的40=4*10 正确
22 
23     000000DEB17CFA68 //数组第一个元素的地址
24     000000DEB17CFA6C //数组第二个元素的地址
25     0x68+0x4=0x6C ---> 一个int位占四个字节
26 
27     000000DEB17CFA68 //数组第一个元素的地址
28     000000DEB17CFA6C //数组第二个元素的地址
29     0x68+0x4=0x6C ---> 一个int位占四个字节
30 */
31     int b[3][4] = { 0 };
32     printf("%p\n", &b);
33     printf("%p\n", &b + 1);
34 
35     printf("%p\n", b);
36     printf("%p\n", b + 1);
37 
38     printf("%p\n", &b[0]);
39     printf("%p\n", &b[0] + 1);
40 /*
41     00000095F217F838 //整个数组的地址
42     00000095F217F868 //跳过整个数组后的下一个地址
43     0x68-0x38=0x30 ---> 十进制下的48=3*4*4 正确
44 
45     00000095F217F838 //数组第一个元素的地址(第一个元素其实是第一个一维数组)
46     00000095F217F848 //数组第二个元素的地址(第二个元素其实是第二个一维数组)
47     0x48-0x38=0x10 ---> 十进制下的16=4*4 正确
48 
49     00000095F217F838 //数组第一个元素的地址(第一个元素其实是第一个一维数组)
50     00000095F217F848 //数组第二个元素的地址(第二个元素其实是第二个一维数组)
51     0x48-0x38=0x10 ---> 十进制下的16=4*4 正确
52 */
53     printf("%zd\n", sizeof(a));                            //40
54     printf("%zd\n", sizeof(b));                            //48
55     printf("%zd\n", sizeof(a)/sizeof(a[0]));            //10:一共有十个元素
56     printf("%zd\n", sizeof(b)/sizeof(b[0]));            //3:一共有四行
57     printf("%zd\n", sizeof(b[0])/sizeof(b[0][0]));        //4:一行有四个元素
58 
59     alpha(a);
60 }

 

image

 

相关新闻

  • Leetcode 56.合并区间 JavaScript (Day 6)
  • 如何定制自己的PyTorch-CUDA镜像?基于v2.7二次开发指南
  • Anaconda配置PyTorch环境太麻烦?试试PyTorch-CUDA-v2.7镜像

最新新闻

  • Go应用安全开发指南:从依赖扫描到运行时防护的完整实践
  • 2026年口碑好的河北工业研磨机/工业研磨机/河北数控双头前角研磨机/数控一体研磨机精选厂家推荐 - 行业平台推荐
  • 2026年正规的四川铣床机械加工/四川数控连床机械加工定制加工厂家推荐 - 品牌宣传支持者
  • 2026年知名的太仓视觉非标自动化设备/太仓单端热敏非标自动化设备/IGBT非标自动化设备厂家哪家好 - 行业平台推荐
  • 2026年可靠的郑州代账报税/郑州代账性价比高的公司 - 品牌宣传支持者
  • 2026荆州漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号