Klausimai, pažymėti „rodyklės aritmetika“

Galite atlikti ribotą skaičių rodyklės aritmetinių operacijų. Šios operacijos: prieaugis, sumažinimas, pridėti, atimti, palyginti ir priskirti.
18
atsakymai

Su masyvais, kodėl taip yra, [5] == 5 [a]?

Kaip nurodo Joelis ngn-wiki.ru # 34 podcast'e, C programavimo kalba (dar žinomas kaip K R) ši masyvų savybė C yra paminėta: a [5] == 5 [a] Joelis sako, kad tai yra dėl rodyklės aritmetikos, bet aš vis dar nesupranta. Kodėl a [5] == 5 [a]?
gruodžio 19 d '08 8:01 val
8
atsakymai

Rodyklės aritmetinis rodyklės negaliojantis C

Kai rodyklė į tam tikrą tipą (pvz., Int, char, float, ..) padidėja, jos vertė padidėja šio duomenų tipo dydžiu. Jei rodyklė yra negaliojanti, o tai rodo x dydžio duomenis, jis auga, kai pasiekia x baitų į priekį ...
nustatytas rugpjūčio 19 d '10, 18:05
8
atsakymai

Masyvo sintaksė prieš rodyklės sintaksę ir kodų generavimą?

Richard Rees'o knygoje „Supratimas ir naudojimas C žymekliams“ žr. 85 psl., Int vektorius [5] = {1, 2, 3, 4, 5}; Vektoriaus [i] generuojamas kodas skiriasi nuo * generuoto kodo (vektorius + i). vektoriaus [i] žymėjimo vektorius [i] generuoja įrenginį ...
yra nustatytas liepos 17 d. 18 val
7
atsakymai

Rodyklės aritmetika

Ar kas nors turi gerų straipsnių ar paaiškinimų (dienoraščių, pavyzdžių) rodyklės aritmetikai? Auditorijos modelis yra „Java“ programuotojų, mokančių C ir C ++, krūva.
gruodžio 27 d '08 10:10
5
atsakymai

Ar C standartas leidžia jums priskirti žymeklį savavališkai ir padidinti?

Ar šio kodo elgesys yra gerai apibrėžtas? #include <stdio.h> #include <stdint.h> int main (void) {void * ptr = (char *) 0x01; size_t val; ptr = (char *) ptr + 1; val = (size_t) (uintptr_t) ptr; printf ("% zu \ t
birželio 28 d. 18 val
5
atsakymai

Jei rodyklė p, ar p <p + 1 gali būti neteisinga kaip paskutinė išeitis?

Ar yra rodyklės kintamojo p, kad p <(p + 1) yra klaidingas? Prašome paaiškinti atsakymą. Jei taip, kokiomis aplinkybėmis tai gali įvykti? Man buvo įdomu, ar p + 1 gali perpildyti ir būti lygus 0. Pavyzdžiui. H ...
nustatyti 03 gruodis „14“ 4:30 val
11
atsakymai

Prieigos prie masyvo reikšmių rodyklės aritmetika ir parašas C

Aš nuolat skaityti, kad C, naudojant žymeklį aritmetika paprastai yra greičiau nei parašai pasiekti masyvą. Ar tai pasakytina net ir su moderniais (galbūt optimizuojančiais) kompiliatoriais? Jei taip yra, tai dar būna, kai aš pradedu ...
nustatyti 24 okt. '08 at 2:25 val
5
atsakymai

Rodyklės aritmetika su dviem skirtingais buferiais

Apsvarstykite šį kodą: int * p1 = new int [100]; int * p2 = naujas int [100]; const ptrdiff_t ptrDiff = p1 - p2; int * p2_42 = p1_42 + ptrDiff; Dabar, ar standartas garantuoja, kad p2_42 nukreipia į p2 [42]? Jei ne, tada ...
nustatyti 28 sausis '19, 14:52
2
atsakymai

Ar ptrdiff_t gali atstovauti visus nukreipimus nuo to paties masyvo objekto elementų?

Jei norite atimti taškus i ir j to paties masyvo objekto elementams, pastaba [expr.add # 5] skaito: [Pastaba. Jei ij reikšmė nėra std :: ptrdiff_t tipo verčių intervale, elgesys yra neapibrėžtas. - baigtinis ...
kovo 20 d., 12 val
4
atsakymai

Ar tai turėtų būti vadinama ypatingu objektų apipjaustymo atveju?

Tarkime, kad turiu išvestinę klasę, kuri gaunama iš bazinės klasės, o dydis (išvestis)> sizeof (bazė). Dabar, jei paskirsite išvestinę masyvą taip: Bazė * myArray = nauja Išvestinė [42]; ir tada bandoma pasiekti ...
gegužės 15 d. 16 val
1
atsakymas

Indekso aritmetika Subobject Boundaries

Ar šis kodas (kuris atlieka rodyklės aritmetinį požymį sub-objekto ribose) turi teisingą T tipų elgesį, kuriam jis yra sudarytas (kuris C ++ 11 neturi būti POD) ar jo pogrupis? #include <cassert> #i ...
kovo 05 d. 13 val
7
atsakymai

Kokie yra aritmetinio ar rodyklės palyginimo apribojimai?

C / C ++ žymeklio pridėjimas ar atimtis nustatomas tik tada, kai gautas žymeklis yra originalo rodyklės viduje kaip pilnas objektas. Be to, dviejų rodiklių palyginimas gali būti atliekamas tik tuo atveju, jei abu rodikliai yra pažymėti ...
nustatyti 03 gruodis '17, 11:05
1
atsakymas

Ar ne vieno masyvo rodyklė „C ++“ įrašo galiojančią koncepciją?

Standartinė C ++ [c 5.7] teigia: jei abu rodyklės operandai ir rezultatas nukreipia į tos pačios masyvo objekto elementus arba vieną paskutinį masyvo objekto elementą, vertinimas neturėtų sukelti perpildymo; kitaip
nustatyti 24 sausis '13, 19:15
1
atsakymas

C ++ yra įdomi sintaksė, skirta spausdinti naują eilutę std :: cout

Šis kodas išspausdina simbolių „*“ kvadratą: int m = 5; int n = 5; (int i = 1; i <= n; i ++) (int j = 1; j <= m; j ++) std :: cout << "*" << "n" [j == 5]; Išvada: * * * * * * * * * * * * * * * * * * * * * * * * * ...
gegužės 14 d., 17 val. 11:31
6
atsakymai

Ar vietinio kintamojo adresas priima pastovią išraišką C ++ 11?

Toliau pateikta C ++ 11 programa: int x = 42; void f () {int y = 43; static_assert ( x < y, "foo"); } int main () {f (); } Nenurodo su gcc 4.7, nes jis skundžiasi: klaida: „ y“ nėra nuolatinis ekspresas ...
nustatyti 21 rug. '13, 11:24