【c語言】*p++、*++p、(*p)++、++*p 的區別學習
為了清晰明瞭,我們每次都使p指向陣列的首地址。
(1)*p++
int b = *p++;//等價於a = *(p++); 即a = *p; p = p + 1;
執行上面語句,輸出b=10
執行語句*p++;後,*p=20;
(2)*++p
int d = *++p;//等價於 p =p+1; d=*p;
*和++的優先順序相同,但根據它們的右結合性可知,先p=p+1;後d=*p;因此d=20
(3)(*p)++
int e = (*p)++; 等價於 *p;*p+1
此處括號的優先順序高於++運算子,因此先*p;後*p+1;因此e=10;之後再e+1
(4)++*p
int f = ++*p; 等價於*p+1
*和++的優先順序相同,但根據它們的右結合性可知,先*p;後f=*p+1;因此f=11
相關推薦
【C語言】統計一個字串中字母、數字、空格及其它字元的數量
統計一個字串中字母、數字、空格及其它字元的數量 解法1: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> void Count(con
【c語言】*p++、*++p、(*p)++、++*p 的區別學習
為了清晰明瞭,我們每次都使p指向陣列的首地址。 (1)*p++ int b = *p++;//等價於a = *(p++); 即a = *p; p = p + 1; 執行上面語句,輸出b=10 執行語句*p++;後,*p=20; (2)*++p int d = *++p
【C語言】一維陣列、二維陣列與指標
一維陣列和指標: 1、一維陣列名: 對於這樣的一維陣列:int a[4]; a作為陣列名就是我們陣列的首地址, a是一個地址常量 . 首先說說常量和變數的關係, 對於變數來說, 用箱子去比喻再好不過了, 宣告一個變數就宣告一個箱子,比如我們開闢出一個蘋果型別的箱子, 給這個變
【C語言】指標的算術運算(指標+/-整數、指標+/-指標)
一、指標+/-整數 在之前學習指標時,我們知道指標其實也是一種特殊的變數,既然這樣,那麼指標應該和普通變數一樣,可以進行算術運算。那問題就來了,是不是對指標的任何運算都是合法的呢? 答案是它可以執行某些運算,但並非所有的運算都合法。(指標可以進行加減法,對於乘除法是非法的)
【c語言】利用指標模式實現字串函式(strlen、strcat、strstr、strcpy、strcmp、memcpy、memove)
模擬實現strlen int my_strlen(const char *p) { assert(p != NULL); char *s = p; while (*p) { p++; } r
【c語言】巨集(#define、#和##)與函式比較
#define -定義識別符號 ef:#define在預處理階段替代所有的Max #define Max 100 int main() { printf("%d\n", Max); system("pause"); return 0
【C語言】結構體、聯合,記憶體對齊規則總結
一、結構體 1.1什麼是結構體 在C語言中,結構體是一種資料結構,是C提供的聚合型別(C提供了兩種聚合型別:陣列和結構)的一種。結構體與陣列的區別是:陣列是相同型別的集合,而結構體可能具有不同的型別。 結構體也可以被宣告為變數,陣列或者指標等,用以實現較複雜的
【C語言】函式指標、函式指標陣列、函式指標陣列的指標
一.函式指標 1.定義理解 函式指標:是一個指標,存放函式地址的指標。 函式的地址可以通過取地址函式名拿到,也可以通過函式名直接拿到。2.函式指標 (1)定義一個函式test void test(char *str) { printf("%s\n",str); }
【c語言】求方程式 ax^2+bx+c=0 的根,分別考慮:1、有兩個不等的實根 2、有兩個相等的實根
// 求方程式 ax^2+bx+c=0 的根,分別考慮:1、有兩個不等的實根 2、有兩個相等的實根 #include <stdio.h> #include <math.h> int main() { int d; int a,b,c; do
【c語言】給一個不多於5位的正整數,要求: 1、求出它是幾位數 2、分別輸出每一位數字 3、按逆序輸出各位數字
// 給一個不多於5位的正整數,要求: // 1、求出它是幾位數 // 2、分別輸出每一位數字 // 3、按逆序輸出各位數字 #include <stdio.h> #include <math.h> int main() { int a,b,c
【C語言】編寫一個函式,將一個數字字串轉換成這個字串對應的數字(包括正浮點數、負浮點數)
//編寫一個函式,將一個數字字串轉換成這個字串對應的數字(包括正浮點數、負浮點數) //例如:“12.34“ 返回12.34. " -12.34" 返回12.34 #include<
【C#/WPF】修改圖像的DPI、Resolution
set key https blog cal ret 要求 及其 寬高 原文:【C#/WPF】修改圖像的DPI、Resolution 問題: WPF中默認使用的圖像的DPI是96。如果我們使用
【C#基礎】判斷字串是否為空、判斷字元是否為數字
一、判斷字串是否為空 String.Empty和string=””是一樣的,同樣都是需要佔用記憶體空間<空字串>;但優先推薦使用string.Empty Console.WriteLine("".Equals(string.Empty));//結果:true 還一種高效判斷方
【C語言】統計數字在排序數組中出現的次數
語言 個數 統計 ret r+ () class tdi times //數字在排序數組中出現的次數。 //統計一個數字在排序數組中出現的次數。比如:排序數組{1,2,3,3,3,3,4,5}和數字3,因為3出現了4次,因此輸出4. #include <stdio
【C語言】推斷一個數是否為2的n次方
post data- popu scanf scan ng- 輸入 ont print //推斷一個數是否為2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))
【C語言】 二叉樹的基本運算
IT btree AS CA style pri != -- str • 二叉樹節點類型BTNode: 1 typedef struct node 2 { 3 char data; 4 struct node *lchild, *rch
【C語言】類型限定詞
變量 可變 oct 包含 一個數 sta ans eof 方式 ANSI C 的類型限定詞有const、volatile以及restrict三個,以下分別介紹三個限定詞: 1、類型限定詞const (1)、如果變量中帶有const關鍵字,則該變量無法進行賦值、增量及減量運算
【C語言】平衡二叉樹
avl 簡介 二叉搜索樹 沒有 TP 假設 它的 left 操作 AVL樹簡介 AVL樹的名字來源於它的發明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL樹是最先發明的自平衡二叉查找樹(Self-Balancing Binary Searc
【C語言】輸入一個整數,求它的原碼,反碼,補碼值
補碼 while src info idt IV com scan -- 1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int m,n,a[10],i=0,y[
【C語言】數據對其(內存對齊)
brush size return () def ont http 之間 sign 數據對齊 結構體之間的對齊是有很多種方法的,也是根據你所用的系統位數有關。下面都是以32位系統來講的,32位系統一般以字對齊,字就是系統位數,32位系統則是32位對齊,也就是4字節(in