C++ 指標(任何一個指標本身的型別都是unsigned long int型)
1.指標陣列: 即 陣列的元素是指標型;
例:int*pa[2];
明明是一維的指標陣列,竟當作二維陣列用。
- //利用指標陣列存放單位矩陣
- #include <iostream>
- usingnamespace std;
- void main()
- {
- int line1[]={1,0,0}; //宣告陣列,矩陣的第一行
- int line2[]={0,1,0}; //宣告陣列,矩陣的第二行
- int line3[]={0,0,1}; //宣告陣列,矩陣的第三行
- int* p_line[3];//宣告整型指標陣列
-
//對指標陣列元素賦初值
- p_line[0]=line1;
- p_line[1]=line2;
- p_line[2]=line3;
- //輸出單位矩陣
- cout<<"Matrix test:"<<endl;
- for(int i=0;i<3;i++) //對矩陣每一行迴圈
- {
- for(int j=0;j<3;j++)//對陣列元素迴圈
- {
- //明明是一維的指標陣列,竟當作二維陣列用
-
cout<<p_line[i][j]<<" "
- }
- cout<<endl;
- }
- }
輸出結果:
Matrix test:
1 0 0
0 1 0
0 0 1
2.指標型函式
當函式的返回值是地址時,該函式就叫指標形函式,又叫返回指標的函式。
宣告形式:資料型別* 函式名( )
指標型函式的使用(串連線)
- //指標型函式的使用(串連線)
- #include <stdio.h>
- char *my_cat(char *p1, char *p2)
- {
-
staticchar
- p=a;
- while (*p1 != '\0') *p++=*p1++;
- while (*p2 != '\0') *p++=*p2++;
- *p=*p2;
- return a;
- }
- void main()
- {
- char s1[80],s2[80];
- printf("\n請輸入第一串字元: ");
- //注意:scanf和cin在輸入字串時,遇到空格就終止,而gets 不會。
- gets(s1);
- //cin >> s1;
- //scanf("%s", s1);
- fflush(stdin);
- printf("\n請輸入第二串字元: ");
- gets(s2);
- //cin >> s2;
- //scanf("%s", s2);
- printf("\n連線結果: \n");
- printf("\n第一串在前第二串在後: %s \n",my_cat(s1,s2));
- printf("\n第二串在前第一串在後: %s \n",my_cat(s2,s1));
- }
請輸入第一串字元: dalian
請輸入第二串字元: i love you
連線結果:
第一串在前第二串在後: daliani love you
第二串在前第一串在後: i love youdalian
3.指向函式的指標
3.1指向函式的指標
宣告形式: 資料型別 (*函式指標名) ( 形參表);
含義: 資料指標指向的是資料儲存區;而函式指標指向的是程式程式碼儲存區。函式名就是地址。
3.2 指向函式的指標陣列: 指向函式的指標可組成陣列。
宣告形式; 資料型別 (*函式指標名[ ] )( 形參表);
- /************************************************************************
- 練習:寫一個程式,根據使用者的輸入資料算出結果:
- 只寫出四種運算就可以。
- 例如:
- 1 + 2 = 3
- 1 * 2 = 2
- 1 –2 = -1
- 1 / 2 = 0
- **************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- typedefint (*pFun[])(int,int);
- int add(int,int);
- int sub(int,int);
- int mul(int ,int);
- int divide(int,int);
- void main()
- {
- pFun pfun = {mul,add,NULL,sub,NULL,divide};
- //也可以這樣:int (*pfun[])(int,int) ={mul,add,NULL,sub,NULL,divide};
- int item1,item2;
- int result;
- char op;
- do
- {
- printf("Please input :\n");
- fflush(stdin);
- scanf("%d %c %d",&item1,&op,&item2);
- result = pfun[op-'*'](item1,item2); //用到了是 + - * / 的ASCII特性
- printf("%d %c %d = %d \n",item1,op,item2,result);
- printf("try again ? please input y\\n\n");
- fflush(stdin);
- scanf("%c",&op);
- } while(op == 'y');
- }
- int add(int a,int b)
- {
- return (a+b);
- }
- int sub(int a,int b)
- {
- return (a-b);
- }
- int mul(int a,int b)
- {
- return a*b;
- }
- int divide(int a,int b)
- {
-
相關推薦
C++ 指標(任何一個指標本身的型別都是unsigned long int型)
1.指標陣列: 即 陣列的元素是指標型; 例:int*pa[2]; 明明是一維的指標陣列,竟當作二維陣列用。 //利用指標陣列存放單位矩陣 #include <iostream> usingnamespace std;
初學指標(輸入兩個整數,由大到小輸出)
#include <iostream> using namespace std; int main() { void Swap(int *p1,int *p2); int a,b; cout<<"please enter a and b"<<endl; c
指向陣列的指標(二維指標)
char (*a)[N];//指向陣列的指標 a = (char (*)[N])malloc(sizeof(char) * N * m); printf("%
C語言(結構體、列舉型別、型別定義)
結構體的定義 1、`struct 結構體名 { 成員型別 成員名; … }; 2、省略結構體名 struct { 成員型別 成員名; ... }結構體變數名; 成員可以是其他已定義結構體的型別,但不能是自己結構體的型別,可以是自己結構體的指標。 定義
指標與陣列的關係,指標運算,指向指標的指標(二維指標)
#include<iostream> using namespace std; int main() { int a[5] = {0,1,2,3,4}; int *p = a; cout << a[1] << endl &
連結串列中 指向 節點(結構體)指標 的指標(二重指標)(原題目為pta上查詢倒數k個位置上的數字)
#include<stdio.h> #include<stdlib.h> typedef struct list{ int num; struct list *next; }List ,*LIST; LIST createlist(LIST *L,
C語言(變數的定義和型別的本質)
學習程式設計開發的一個非常重要的概念是:一定要理解任何變數、函式原則上都是一塊塊大小各異的記憶體,而型別則是我們和系統對這塊記憶體含義的約定。 拓展: 很多初學者對變數的定義理解模糊,比如 int a; 這個語句的唯一正確的理解應該是:申請一塊名叫a的內容,而且
Python——property(使一個方法看起來就像類屬性一樣)
一定要註意了 函數返回 exce 函數 蘋果 調用 prop 存在 ice """ 裝飾器property: 使一個方法看起來就像類屬性一樣 """ #例子1 class A: def __ini
260. 只出現一次的數字 III(建立一個字典+一種我不會的思路)
參考:https://blog.csdn.net/wem603947175/article/details/82117675 這道題很簡單,用字典的方法做的,但是我的字典實現超過時間限制。對比如下: (學習(*^▽^*)) # 通過,優於我的字典存取 # class Solution(
2016年ACM/ICPC大連賽區 C題(JAVA高精度求sqrt(5)+威佐夫博弈)
題目連結:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5747 題意:除了資料範圍為10^100次方以外
C語言(getchar、_getch、gets、putchar函式的比較)
getchar函式:格式為getchar() 此函式沒有引數,表示從鍵盤輸入一串字元但每次只讀取第一個字元,返回值為int型(第一個字元的ASCII碼)。可以定義一個字元變數儲存這個字元。如果外層巢狀迴圈讀取則從緩衝區內一位一位讀取(將第一個字元刪除,字串左移)。 _getch
hdu2521(求一個區間因子個數最多的那個數)
/**/ #include <cstdio> #include <cstring> #include <cmath> #include <cctype> #include <iostream> #include <algorithm&
哥德巴赫猜想:任何一個>=4之偶數,都可以表示成兩個奇質數之和.
任何一個>=4之偶數,都可以表示成兩個奇質數之和. 分析思路: 1.給定一個範圍,找出這個範圍裡面的所有質數(用空間換時間,效能提高),將其儲存到一個數組中 2.使用迴圈,將這個範圍 和 質數陣列 傳入 一個方法,判斷是否成立。找出所有大於4的偶數
朱曄和你聊Spring系列S1E8:湊活著用的Spring Cloud(含一個實際業務貫穿所有元件的完整例子)
本文會以一個簡單而完整的業務來闡述Spring Cloud Finchley.RELEASE版本常用元件的使用。如下圖所示,本文會覆蓋的元件有: Spring Cloud Netflix Zuul閘道器伺服器 Spring Cloud Netflix Eureka發現伺服器 Spring Cloud Net
Oracle 匯出表結構(含列名、資料型別、欄位備註註釋)匯出成Excel
oracle表結構涉及到幾個關鍵的系統表: cols –系統表 user_col_comments –表名、列名、說明 user_tab_comments –表名、型別、說明 user_objects – 字典表檢視 真正
Delphi多執行緒的OnTerminate屬性(附加一個關於臨界區執行緒同步的例子)
首先看TThread原始碼中關於OnTerminate的程式碼: ? 1 2 3 4 5 public .... property OnTerminate: TNotifyEvent read FOnTerminate write FOnTerminate; ... end;
POJ 2117 (去掉一個割點的求最多連通分支)
#include<cstdio> #include<cstring> #include<vector> #include<algorithm> using namespace std; const int maxn=10000+10; int n,m;
Java 之路 (十六) -- 泛型下(萬用字元、型別擦除、泛型的限制)
7. 萬用字元 萬用字元,即 “?”,用來表示未知型別。 萬用字元可用作各種情況:作為引數,欄位或區域性變數的型別;有時也作為返回型別;萬用字元從不用作泛型方法呼叫、泛型類例項建立或超型別的型別引數。 7.1 上限有界的萬用字元 使用上限萬用字元來放
C. Line(擴充套件歐幾里得求不定方程的解)
time limit per test 1 second memory limit per test 256 megabytes input standard input outp
matalb k-means函式使用方法(附一個很好的k-means參考部落格)
首先得說,雖然matlab提供了KMeans函式,但是matlab的KMeans聚類好慢,真的好慢! K-means演算法是硬聚類演算法,是典型的基於原型的目標函式聚類方法的代表,它是資料點