小豬的C語言快速入門系列(七)
小豬的C語言快速入門系列(七)
標籤: C語言
本節引言:
在第五節的時候我們對C裡的指標進行了初步的學習,而作為C語言的靈魂,
當然不會就那麼簡單,本節我們來進一步學習指標,包括:函式與指標
,
指標陣列
,二級指標
,記憶體的動態
以及 const修飾指標
。
本節學習路線圖
1.函式與指標
1)指標作為函式的形參
2)指向函式的指標
3)指標函式
4)帶引數的主函式
該程式需要用到命令列引數,需要先編譯生成exe,然後cmd命令列來到生成的exe檔案
所在目錄下輸入:檔名 one two three,結果會輸出one two three。
2.指標陣列
問題引入:如何儲存一個字串更好?如果儲存的不止一個,而是多個字串呢?
問題一回答:
char name[20] = “~” ②char *name = “~” //前者定義了長度,不能直接賦值,明顯後者比較靈活
問題二回答:
3.二級指標
4.記憶體的動態分配
程式碼示例:
動態分配10個int型別的空間大小,如果大於這個數目則動態分配,否則利用realloc
重新分配記憶體。
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main()
{
int *p = 0;
int i,num,*q = 0;
p = (int *)malloc((N * sizeof(int)));
if(p == 0)
{
printf("記憶體分配錯誤!\n");
exit(0);
}
printf("請輸入要儲存的元素個數:\n");
scanf("%d",&num);
if(num <= N)
{
for(i = 0;i < N;i++)
scanf("%d",p+i);
}
else
{
for(i = 0;i < num;i++)
q = (int *)realloc(p,(N + N)*sizeof(int));
if(q == 0)exit(0);
for(i = 0;i < num;i++)
scanf("%d",q + i);
p = q;
}
for(i = 0;i < num;i++)
printf("%3d",*(p+i));
printf("\n");
free(p);
return 0;
}
5.使用const修飾指標變數
const
關鍵字修飾的資料型別是指 常型別
,最簡單的用法是用來定義const
常量,具有不變性,比如int const a = 10; 要注意一點:
const修飾的常量在宣告的時候就要進行初始化賦值,不然後面是不能賦值的!
另外在與指標結合使用的時候,const 顛倒寫 表示的意思是不一樣的!
- int const *a; //修飾指向的內容,a可變,a指向的內容不可變
- int *const a; //修飾指標a,a不可變,a指向的內容可變
- const int *a; //修飾指向的內容,a可變,a指向的內容不可變
- const int *const A; //指標a和a指向的內容都不可變
上述結論可以自行修改下述例子裡指標與指向的內容自行測試:
#include<stdio.h>
int main()
{
int const a;
a = 5;
printf("a = %d\n",a);
return 0;
}
本文連結:小豬的C語言快速入門系列(七)
作者:Coder-Pig
出處:http://blog.csdn.net/coder_pig
本文基於知識共享署名-相同方式共享 4.0 國際許可協議釋出,歡迎轉載,
演繹或用於商業目的,但是必須保留本文的署名及連結。åç
相關文章
- 小豬的C語言快速入門系列(一)C語言
- 小豬的C語言快速入門系列(二)C語言
- 小豬的C語言快速入門系列(三)C語言
- 小豬的C語言快速入門系列(四)C語言
- 小豬的C語言快速入門系列(五)C語言
- 小豬的C語言快速入門系列(六)C語言
- 小豬的C語言快速入門系列(八)C語言
- 小豬的C語言快速入門系列(九)C語言
- 【Go語言入門系列】(七)如何使用Go的方法?Go
- C++語言菜鳥快速入門C++
- Flutter小白教程系列(三) --- Dart語言快速入門FlutterDart
- R語言快速入門R語言
- Go語言快速入門Go
- Groovy 語言快速入門
- Swift語言快速入門Swift
- c語言入門C語言
- 如何快速入門一門語言
- go語言快速入門教程Go
- SQL語言快速入門(轉)SQL
- C語言快速入門教程1快速入門 2指令 3條件選擇C語言
- GO 語言快速開發入門Go
- C語言入門基礎C語言
- golang 快速入門 [3]-go 語言 helloworldGolang
- 自然語言處理NLP快速入門自然語言處理
- Go語言快速入門筆記01Go筆記
- Lua 語言 15 分鐘快速入門
- Go語言程式設計快速入門Go程式設計
- 幾十種程式語言的快速入門教程
- 《C 語言入門教程》釋出了
- Rust入門系列之語言特性 - 1Rust
- C語言程式設計入門經典18個小程式C語言程式設計
- Go語言入門系列(四)之map的使用Go
- 【Go語言入門系列】(八)Go語言是不是面嚮物件語言?Go物件
- golang 快速入門 [1]-go 語言導論Golang
- Dart語言——45分鐘快速入門(下)Dart
- Dart語言——45分鐘快速入門(上)Dart
- Golang語言檔案操作快速入門篇Golang
- [C語言] 第一章|C語言入門第一課C語言