網站首頁 編程語言 正文
指針
指針是一個變量
(1) 作用:只能存儲地址的值
(2) 大小:32位操作系統中占4字節;64位操作系統中占8字節
(3) 取地址:&
(4) 運算:可進行加、減法操作
示例:
- 定義一個指針變量 p
- 初始化
- 賦值為 5
二級指針:指向指針的指針
int a;
//一級指針變量
int *p = &a;
*p = 5;
//二級指針
int **k;
//存儲一級指針變量的地址
k = &p;
等價形式轉換
- *p <=> a(原始變量)
- p+1 <=> &p[1]
- p->filed <=> (*p).filed <=> a.filed
#include<stdio.h>
#define print(func){\
printf("%s = %d\n", #func, func);\
}
struct Data {
int x, y;
};
int main(){
struct Data a[2], *p = a;
//初始化
a[0].x = 0, a[0].y = 1;
a[1].x = 2, a[1].y = 3;
//用盡可能多的形式表示a[1].x --> 3
print(a[1].x);
print((&a[1])->x);
print((a+1)->x);
print((&a[0] + 1)->x);
print((*(&a[1])).x);
print((*(a + 1)).x);
print((*(&a[0] + 1)).x);
print(p[1].x);
print((&p[1])->x);
print((p+1)->x);
print((&p[0] + 1)->x);
print((*(&p[1])).x);
print((*(p + 1)).x);
print((*(&p[0] + 1)).x);
return 0;
}
函數指針
typedef 的用法
內建類型的重命名:
typedef long long lint;
typedef char * pchar;
結構體類型的重命名:
typedef struct __node{
int x, y;
} Node, *PNode;
函數指針命名:
typedef int (*func)(int);
主函數
int main();
int main(int argc, char *argv[]);
(1) argc :命令行參數個數
(2) argv:本質上為一個一維的數組,存儲字符型指針
(3) char * :字符數組的首地址
(4) 結合(1)(2)可得,char *argv[]為二維字符數組,表示具體的命令行參數,根據空格或 \t分割參數
int main(int argc, char *argv[], char **env);
(1) char **env為二級指針
(2) env 是一個指針變量,存的是另一個指針的地址
(3) char **env 也是 二維字符數組 ,表示環境變量
#include<stdio.h>
int main(int argc, char *argv[], char **env){
printf("argc = %d\n", argc);
for(int i = 0;i < argc; i++){
printf("argv[%d] = %s \n ", i, argv[i]);
}
for(int i = 0; env[i]; i++){
printf("env[%d] = %s\n", i, env[i]);
}
return 0;
}
原文鏈接:https://blog.csdn.net/zkx990121/article/details/125480595
相關推薦
- 2022-04-05 老生常談Python中的Pickle庫_python
- 2022-04-25 C#中使用DevExpress中的ChartControl實現極坐標圖的案例詳解_C#教程
- 2022-09-29 DevExpress的DateEdit設置顯示日期和時間的方法_C#教程
- 2023-05-30 C++中map和set的使用詳細攻略_C 語言
- 2023-05-13 Python?readline()和readlines()函數實現按行讀取文件_python
- 2022-08-23 python?matplotlib畫圖時坐標軸重疊顯示不全和圖片保存時不完整的問題解決_python
- 2022-05-09 python?itertools包內置無限迭代器_python
- 2022-10-08 C語言深入分析浮點型數據存儲_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支